package com.sky.mapper.redis;

import com.sky.pojo.CourierTradeOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

@Mapper
public interface CourierTradeOrderMapper {
    /**
     * 运单查询
     * select trade_no from tb_courier_trade_order where courier_id=#{courierIds} and trade_create_time like
     * concat(#{today},'%')
     */
    @Select("select * from tb_courier_trade_order where courier_id=#{courierId} and waybill_status=#{status}")
    List<CourierTradeOrder> queryCourierTradeOrderByCourierIdAndStatus(@Param("status") Long status, @Param("courierId") Long courierId);

    List<Long> findTodayOrdersLessThen12ByIds(@Param("courierIds") List<Long> courierIds,
                                              @Param("today") String today);

    List<Map<String, Long>> findTodayOrderNumByIds(@Param("courierIds") List<Long> courierIds,
                                                   @Param("today") String today);

    void updateCourierIdByTradeNo(Long courierId, Long tradeNo);

    void save(CourierTradeOrder courierTradeOrder);

    /**
     * 查询运单
     */
    @Select("select * from tb_courier_trade_order where trade_no=#{tradeNo}")
    CourierTradeOrder queryTradeOrderByTradeNo(Long tradeNo);
    /**
     * 修改运单的状态为已接单
     */
    @Update("update tb_courier_trade_order set waybill_status=#{status} where trade_no=#{tradeNo}")
    void updateCourierStuatus(@Param("tradeNo") Long tradeNo, @Param("status") Integer status);
    //判断订单是否已经完成，如果已经完成，那么都不允许查看
    CourierTradeOrder selectByTradeNo(Long tradeNo);
    /**
     * 我的订单
     * */
    List<CourierTradeOrder> selectCourierOrders(@Param("date") String date,
                                                @Param("status") Integer status,
                                                @Param("courierId") Long courierId);
}
